﻿using System;
using System.Collections.Generic;
using System.Linq;
using System.Web;
using System.IO;
using System.Data.Entity;
using System.ComponentModel.DataAnnotations;
using System.Collections;
using MvcLibrary.Repository;

namespace WebVideo.Areas.Admin.Models
{
    public class ProfileAdminModel
    {
      
        public string UserName { get; set; }

        [DataType(DataType.Password)]
        [Required(AllowEmptyStrings = false, ErrorMessage = "Password không được rỗng!")]
        [StringLength(20, MinimumLength = 6, ErrorMessage = "Password phải lớn hơn 6 và nhỏ hơn 20 ký tự")]       
        public string Pass { get; set; }

        [DataType(DataType.Password)]
        [Required(AllowEmptyStrings = false, ErrorMessage = "Password nhập lại không được rỗng")]
        [Compare("Pass", ErrorMessage = "Password không trùng nhau")]
        public string ConfirmPassword { get; set; }

        //[Required(ErrorMessage = "Họ Tên không được rỗng")]
        //[StringLength(30, ErrorMessage = "Họ Tên phải ít hơn {1} kí tự và lớn hơn {2} kí tự", MinimumLength = 2)]
        public string Name { get; set; }

        //[Required(ErrorMessage = "Địa Chỉ không được rỗng")]
        //[StringLength(50, ErrorMessage = "Tiêu đề phải ít hơn {1} kí tự và lớn hơn {2} kí tự", MinimumLength = 3)]
        public string Adress { get; set; }

        //[Required(ErrorMessage = "Số điện thoại không được rỗng")]
        //[RegularExpression("^\\+?\\d+$", ErrorMessage = "Không nhập ký tự , vui lòng nhập số điện thoại")]
        public string PhoneNumber { get; set; }

        //[Required(ErrorMessage = "Email không được rỗng")]
        //[EmailAddress(ErrorMessage = "Định dạng Email sai")]
        public string Email { get; set; }

        public DateTime? Date { get; set; }


        public static ProfileAdminModel LayModel(string US)
        {
            ProfileAdminModel AD = new ProfileAdminModel();
            dbVideoDataContext db = new dbVideoDataContext();
            EntityAdmin ad = db.EntityAdmins.Where(p => p.UserName == US).First();
            AD.UserName = ad.UserName;
            AD.Name = ad.Name;
            AD.Adress = ad.Adress;
            AD.PhoneNumber = ad.PhoneNumber;
            AD.Email = ad.Email;
            return AD;

        }
        public static void Edit(ProfileAdminModel AD)
        {
            dbVideoDataContext db = new dbVideoDataContext();
            EntityAdmin Ad = db.EntityAdmins.Single();
            Ad.UserName = "admin";
            Ad.Name = AD.Name;
            Ad.Adress = AD.Adress;
            Ad.PhoneNumber = AD.PhoneNumber;
            Ad.Email = AD.Email;
            db.SubmitChanges();
        }

        public static ProfileAdminModel LayModelPass(string US)
        {
            ProfileAdminModel AD = new ProfileAdminModel();
            dbVideoDataContext db = new dbVideoDataContext();
            EntityAdmin ad = db.EntityAdmins.Where(p => p.UserName == US).Single();
            AD.UserName = ad.UserName;
            AD.Pass = ad.Pass;
            return AD;

        }
        // sua pass
        public static void Passw(ProfileAdminModel Mtnew)
        {
            dbVideoDataContext db = new dbVideoDataContext();

            EntityAdmin tnew = db.EntityAdmins.Where(p => p.UserName == Mtnew.UserName ).Single();
           // tnew.UserName = "admin";
            Security ser = new Security();
            string passHex = ser.GetHashPassword(Mtnew.Pass );
            tnew.Pass = passHex ;
            db.SubmitChanges();           
        }
    }
}